#pragma once
#include "ooputils_global.h"
#include "Ptr.h"



_NS_OOP_BEGIN



template< class T >
class Array : public Ptr< T >
{
public:

	Array ();

	Array (size_t nElems);

	Array (T* arr, size_t nElems, bool isCopy = true);

	Array (const QVector< T >& r_vec);

	Array (const Array< T >& r_arr);

	Array (const Array< T >&& rr_arr);

	~Array ();

	Array< T >& operator= (const Array< T >& r_arr);

	Array< T >& operator= (const Array< T >&& rr_arr);

	T& operator[] ();

	int size ();

	Array< T > clone ();

	void copyFrom (Array< T >& r_arr);

};



_NS_OOP_END